package com.xhui.vimarket.common.utils.collection;

import java.util.Set;

public interface VimarketSet<E> extends VimarketCollection<E>,Set<E> {

    /**
     * 获得所有集合信息，包含保留集合和新增集合。
     * 
     * @return 返回有效集合
     */
    Set<E> getAll();
    
    /**
     * 获得初始的集合信息。
     * 
     * @return 返回保留集合 
     */
    Set<E> getRetains();
    
    /**
     * 获得新增的集合信息。
     * 
     * @return 返回新增集合
     */
    Set<E> getAdds();
    
    /**
     * 获得删除的集合信息。
     * 
     * @return 返回删除集合
     */
    Set<E> getRemoves();
    
    /**
     * 获得初始集合中更新的列表信息。
     * 
     * @return 返回更新集合
     */
    Set<E> getUpdates();
    
    /**
     * 获得初始集合中无更新的列表信息。
     * 
     * @return 返回更新集合
     */
    Set<E> getInitials();

    /**
     * {@inheritDoc}
     * @see com.xhui.crm.common.util.collection.CrmCollection#getCollectionByProperty(
     *      java.lang.String, java.lang.Object)
     */
    Set<E> getCollectionByProperty(String propertyName, Object propertyValue);

}
